//
// Created by czm on 2023/5/15.
//

#ifndef SMART_TRASHBOX_RGBLED_H
#define SMART_TRASHBOX_RGBLED_H

#include "led_strip.h"
#include "Device.h"
#include "../global.h"


/**
 * RGB灯带控制类
 */
class RgbLed : public Device{
public:
    /**
     * 构造函数
     */
    RgbLed();
    ~RgbLed() override;

    /**
     * 设置灯带所有LED颜色
     * @param r RGB颜色
     * @param g
     * @param b
     */
    void setColor(uint8_t r, uint8_t g, uint8_t b);

    const rgb_t &getColor() const;

    void process() override;

private:
    /**
     * LED灯带配置情况
     */
    led_strip_t m_strip{};
    rgb_t m_color{};
    int64_t m_last_update_time=0;
};


#endif //SMART_TRASHBOX_RGBLED_H
